// class 中定义箭头函数方法, 其 this 指向外层作用域的 this, 而外层作用域的 this 指向构造函数的作失域, 所以是指向新构造的对象的
// 将方法作为回调传递时, 需绑定 this, 因为此时只是对方法的引用, 会造成 this 丢失
// 构造函数中将 方法赋值给 实例, 属于回调传递

class 父 {
    constructor(姓名) {
        this.姓名 = 姓名;
    }

    输出姓名 = () => {
        console.log(this.姓名);
    }
}


class 子 extends 父{
    constructor(姓名) {
        super(姓名);
    }
}

let 对象 = new 子('杰克');

对象.输出姓名();


// 绑定 this
class 计数器 {
    constructor() {
        this.计数 = 0;
        this.自增 = this.自增.bind(this); // 此时方法是被作为回调传递的(函数作为参数传递给另一个函数)
    }

    自增() {
        this.计数++;
    }
}

